package coop.bancocredicoop.proyectos.gd.rbac;

import java.util.Set;

import javax.servlet.http.HttpSession;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import coop.bancocredicoop.proyectos.gd.Usuario;

public class RBACMock implements RBAC {

	private static final Log log = LogFactory.getLog(RBAC.class);
	
	String userName;
	Object userContext;

	public RBACMock(HttpSession session, String userName) throws Exception {
		log.warn("Usando RBACMock! Deshabilitar en entorno de producción");
		if (userName.equals("error")) {
			throw new Exception("Simulando error en RBAC");
		}
		this.userName = userName;
	}

	public Usuario getUsuario() {
		return new Usuario(userName, userName, "Mock");
	}

	public boolean tienePermiso(String nombrePermiso) {
		if (userName.equals("sinroles")) {
			return false;
		} else {
			return true;
		}
	}

	public Set<String> getRolesAlfrescoHabilitados() throws Exception {
		return CollectionPermisoRBAC.getRolesAlfrescoHabilitados(this);
	}

	public Set<String> getRolesAlfrescoDeshabilitados() throws Exception {
		return CollectionPermisoRBAC.getRolesAlfrescoDeshabilitados(this);
	}

}
